package edu.yuhf.tts.cui;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Scanner;

import edu.yuhf.tts.dao.BuyTicketDao;
import edu.yuhf.tts.domain.Train;
import edu.yuhf.tts.service.QueryService;
			
public class QueryCUI {
	Scanner in=new Scanner(System.in);
	private QueryService queryService= new QueryService();
			public void ShowQuery() {
				
				String date=null;
				String trainId=null;
				LocalDate date0=null;
				System.out.println("车次查询请按照提示输入信息");
				
				System.out.println("请输入出发地:");
				String from=in.nextLine();
				System.out.println("请输入目的地:");
				String to=in.nextLine();
				System.out.println("请输入发车时间：");
				date=in.nextLine();
				System.out.println("请输入列车号：");
				trainId=in.nextLine();
				Train train;
				System.out.println(date+"  ----  "+trainId);
				if(!Objects.equals(date,"")) {
					DateTimeFormatter dft=DateTimeFormatter.ofPattern("yyyy-MM-dd");
					date0=LocalDate.parse(date, dft);
				}
				
				train=new Train(0,trainId,from,to,date0,null,null);
				List<Train> list=queryService.queryTrain(train);
				System.out.println("查询到的列车如下：");
				
				if(list.size()==0) {
					System.out.println("没有查询到相关数据！");
				}
				
				list.forEach((trainZ)->{
					System.out.println("列车号"+trainZ.getId()+"  出发地"+trainZ.getFromAddress()+" 到目的地"+trainZ.getToAddress()+"  发车日期"+trainZ.getDate()+"   出发时间"+trainZ.getTime()+"  车次"+trainZ.getTrainId()+"  票价"+trainZ.getFares());
				});
				in.close();
			}
			
			
			public static String trainId0=null;			//把列车的id 票价 和出发时间定义为静态全局变量
			public static BigDecimal fares0=null;
			public static LocalDate buyDate=null;
			public void buyQuery() {
				System.out.println("请输入想购买车票的车次：");
				String trainId=in.nextLine();
				System.out.println("请输入出发的日期");
				String date=in.nextLine();
				System.out.println("请输入出发的时间");
				String time=in.nextLine();
				DateTimeFormatter dft=DateTimeFormatter.ofPattern("yyyy-MM-dd");
				LocalDate date0=LocalDate.parse(date, dft);
				System.out.println(date0);
				DateTimeFormatter dtftime=DateTimeFormatter.ofPattern("HH-mm-ss");
//				LocalTime time0=LocalTime.parse(time, dtftime);
				Train train=queryService.querybuy(trainId, date0);
				System.out.println("需要支付的票价为："+train.getFares());
				System.out.println("按1支付票价");
				int ok=in.nextInt();
				if(ok==1) {							//判断是否支付票价后给全局变量赋值
					if(train!=null) {				//判断票价是否查询的到 如果查询的到说明列车存在
						trainId0=trainId;			//给列车的id 票价 和出发时间 赋值
						fares0=train.getFares();
						buyDate=train.getDate();
						BuyTicketDao btd=new BuyTicketDao();
						int load=btd.buyTicket();
						if(load>=1) {
							System.out.println("订单提交成功");
						}
					}
				}
				in.close();
			}
}
